package $1_2processcontrol;

public class IfClass {

	public static void main(String[] args) {
		// 条件判断
		int n = 70;
		if (n >= 60) {
			System.out.println("及格了");
			System.out.println("恭喜你");
		}
		System.out.println("END");

		// 当if语句块只有一行语句时，可以省略花括号{}：
		if (n >= 60)
            System.out.println("及格了");
        System.out.println("END");
        
        /**
         * 在Java中，判断值类型的变量是否相等，可以使用==运算符。但是，判断引用类型的变量是否相等，==表示“引用是否相等”，或者说，是否指向同一个对象。例如，下面的两个String类型，它们的内容是相同的，但是，分别指向不同的对象，用==判断，结果为false
         * 要判断引用类型的变量内容是否相等，必须使用equals()方法
         */
        String s1 = "hello";
        String s2 = "HELLO".toLowerCase();
        System.out.println(s1);
        System.out.println(s2);
        if (s1 == s2) {
            System.out.println("s1 == s2");
        } else {
            System.out.println("s1 != s2");	//输出是这个，表示s1 == s2返回的是false
        }
        //用equals()方法
        if (s1.equals(s2)) {
            System.out.println("s1 equals s2");	//输出这个，表示s1 equals s2返回的是true
        } else {
            System.out.println("s1 not equals s2");
        }
        //执行语句s1.equals(s2)时，如果变量s1为null，会报NullPointerException
        //要避免NullPointerException错误，可以利用短路运算符&&，s1 != null &&
        s1 = null;
        if (s1 != null && s1.equals("hello")) {
            System.out.println("hello");
        }else {
        	System.out.println(s1);
        }
        // 还可以把一定不是null的对象"hello"放到前面
        if ("hello".equals(s1)) {
            System.out.println("hello");
        }else {
        	System.out.println(s1);
        }
	}
}
